﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Data;
using Banesco.Logica;
using Banesco.Entidades;

namespace WebCliente.UserControls
{
    public partial class ucDatosAdicionales : System.Web.UI.UserControl
    {
        BSBanesco objBS = new BSBanesco();
        BanescoBase PaginaBase = new BanescoBase();

        public String NombreEmpresa
        {
            get { return txtNombreEmpresa.Text; }
            set { txtNombreEmpresa.Text = value; }
        }
        public String CodigoIndustria
        {
            get { return ddlCodigoIndustria.SelectedValue; }
            set { ddlCodigoIndustria.SelectedValue = value; }
        }
        public String TipoEmpresa
        {
            get { return ddlTipoEmpresa.SelectedValue; }
            set { ddlTipoEmpresa.SelectedValue = value; }
        }
        public String TipoNegocio
        {
            get { return ddlTipoNegocio.SelectedValue; }
            set { ddlTipoNegocio.SelectedValue = value; }
        }
        public String Correo
        {
            get { return txtCorreo.Text; }
            set { txtCorreo.Text = value; }
        }
        //public String DireccionEmpresa
        //{
        //    get { return txtDireccionEmpresa.Text; }
        //    set { txtDireccionEmpresa.Text = value; }
        //}

        public String TelefonoOficina
        {
            get { return (txtTelefonoOficina1.Text + "-" + txtTelefonoOficina2.Text + "-" + txtTelefonoOficina3.Text); }
            set { setTelefonoOficina(value); }
        }

        public String Fax
        {
            get { return (txtFax1.Text + "-" + txtFax2.Text + "-" + txtFax3.Text); }
            set { setFax(value); }
        }

        protected void setTelefonoOficina(string telefono)
        {
            if (telefono != string.Empty)
            {
                try
                {

                    string[] telSeccionado = telefono.Split('-');

                    txtTelefonoOficina1.Text = telSeccionado[0];
                    txtTelefonoOficina2.Text = telSeccionado[1];
                    txtTelefonoOficina3.Text = telSeccionado[2];
                }
                catch
                {
                    txtTelefonoOficina1.Text = string.Empty;
                    txtTelefonoOficina2.Text = string.Empty;
                    txtTelefonoOficina3.Text = string.Empty;

                }
            }
            else
            {
                txtTelefonoOficina1.Text = string.Empty;
                txtTelefonoOficina2.Text = string.Empty;
                txtTelefonoOficina3.Text = string.Empty;

            }
        }

        protected void setFax(string telefono)
        {
            if (telefono != string.Empty)
            {
                try
                {
                    string[] telSeccionado = telefono.Split('-');

                    txtFax1.Text = telSeccionado[0];
                    txtFax2.Text = telSeccionado[1];
                    txtFax3.Text = telSeccionado[2];
                }
                catch
                {
                    txtFax1.Text = string.Empty;
                    txtFax2.Text = string.Empty;
                    txtFax3.Text = string.Empty;

                }
            }
            else
            {
                txtFax1.Text = string.Empty;
                txtFax2.Text = string.Empty;
                txtFax3.Text = string.Empty;

            }
        }

        public String IdentificacionContraloría
        {
            get { return txtIdentificacionContraloría.Text; }
            set { txtIdentificacionContraloría.Text = value; }
        }
        public String NumeroEmpleado
        {
            get { return txtNumeroEmpleado.Text; }
            set { txtNumeroEmpleado.Text = value; }
        }
        public String FechadeIngreso
        {
            get { return txtFechadeIngreso.Text; }
            set { txtFechadeIngreso.Text = ConvertirFecha(value).ToString(); }
        }
        public String TiempoEmpleo
        {
            get { return txtTiempoEmpleo.Text; }
            set { txtTiempoEmpleo.Text = value; }
        }
        public String RangoSalarial
        {
            get { return ddlRangoSalarial.SelectedValue; }
            set { ddlRangoSalarial.SelectedValue = value; }
        }
        public String SalarioActual
        {
            get { return txtSalarioActual.Text; }
            set { txtSalarioActual.Text = value; }
        }

        //public Boolean HabilitarValidatorEmail
        //{
        //    set { RequiredFieldValidator2.Visible = value; }
        //}


        public Boolean HabilitarValidatorCodigoIndustria
        {
            set { RequiredFieldValidator1.Visible = value; }
        }

        public Boolean HabilitarTodosValidators
        {
            set { HabilitarTodosValidatorsDatosAdicionales(value); }
        }










        //OTROS DATOS

        public String NivelEducacion
        {
            get { return ddlNivelEducacion.SelectedValue; }
            set { ddlNivelEducacion.SelectedValue = value; }
        }

        public String Profesion
        {
            get { return ddlProfesion.SelectedValue; }
            set { ddlProfesion.SelectedValue = value; }
        }

        public String FuenteDeIngreso
        {
            get { return ddlFuenteIngreso.Text; }
            set { ddlFuenteIngreso.Text = value; }
        }

        public String Cargo
        {
            get { return txtCargo.Text; }
            set { txtCargo.Text = value; }
        }

        //public String TipoActividad
        //{
        //    get { return ddlTipoActividad.Text; }
        //    set { ddlTipoActividad.Text = value; }
        //}

        //public Boolean HabilitarTodosValidators
        //{
        //    set { HabilitarTodosValidatorsDatosAdicionales(value); }
        //}

        //protected void HabilitarTodosValidatorsDatosAdicionales(Boolean valor)
        //{
        //    RequiredFieldValidator1.Enabled = valor;
        //    RequiredFieldValidator2.Enabled = valor;
        //}

        //FIN OTROS DATOS

        protected void HabilitarTodosValidatorsDatosAdicionales(Boolean valor)
        {
            RequiredFieldValidator1.Visible = valor;
            //--RequiredFieldValidator2.Visible = valor;
            RequiredFieldValidator3.Visible = valor;
            //RequiredFieldValidator4.Visible = valor;
            //RequiredFieldValidator5.Visible = valor;
            //RequiredFieldValidator6.Visible = valor;
            //RequiredFieldValidator7.Visible = valor;
            //--RequiredFieldValidator8.Visible = valor;
            RequiredFieldValidator9.Visible = valor;
            RequiredFieldValidator10.Visible = valor;
            RequiredFieldValidator11.Visible = valor;
            RequiredFieldValidator12.Visible = valor;
            RequiredFieldValidator13.Visible = valor;
            RequiredFieldValidator14.Visible = valor;
            //--RequiredFieldValidator15.Visible = valor;
            RequiredFieldValidator16.Visible = valor;

            RegularExpressionValidator1.Visible = valor;
            RegularExpressionValidator2.Visible = valor;
            RegularExpressionValidator3.Visible = valor;
            RegularExpressionValidator4.Visible = valor;
            RegularExpressionValidator5.Visible = valor;
            RegularExpressionValidator6.Visible = valor;
            RegularExpressionValidator7.Visible = valor;

            RequiredFieldValidator1.Enabled = valor;
            //--RequiredFieldValidator2.Enabled = valor;
            RequiredFieldValidator3.Enabled = valor;
            //RequiredFieldValidator4.Enabled = valor;
            //RequiredFieldValidator5.Enabled = valor;
            //RequiredFieldValidator6.Enabled = valor;
            //RequiredFieldValidator7.Enabled = valor;
            //--RequiredFieldValidator8.Enabled = valor;
            RequiredFieldValidator9.Enabled = valor;
            RequiredFieldValidator10.Enabled = valor;
            RequiredFieldValidator11.Enabled = valor;
            RequiredFieldValidator12.Enabled = valor;
            RequiredFieldValidator13.Enabled = valor;
            RequiredFieldValidator14.Enabled = valor;
            //--RequiredFieldValidator15.Enabled = valor;
            RequiredFieldValidator16.Enabled = valor;

            RegularExpressionValidator1.Enabled = valor;
            RegularExpressionValidator2.Enabled = valor;
            RegularExpressionValidator3.Enabled = valor;
            RegularExpressionValidator4.Enabled = valor;
            RegularExpressionValidator5.Enabled = valor;
            RegularExpressionValidator6.Enabled = valor;
            RegularExpressionValidator7.Enabled = valor;

        }

        protected void CargarRangoSalarial()
        {
            DataSet dsDatos = new DataSet();

            objBS.ObtenerRangoSalarial(ref dsDatos);
            PaginaBase.CargarDropDown(ddlRangoSalarial, dsDatos.Tables[0], "Descripcion", "idRango", false, " - Escoja su Rango Salarial -");
        }

        protected void CargarTipoNegocio()
        {
            DataSet dsDatos = new DataSet();

            objBS.ObtenerTipoNegocio(ref dsDatos);
            PaginaBase.CargarDropDown(ddlTipoNegocio, dsDatos.Tables[0], "descripcion", "codigo", false, " - Escoja Tipo de Negocio -");
        }


        protected void CargarTipoIndustria()
        {
            DataSet dsDatos = new DataSet();

            objBS.ObtenerCodigoIndustria(ref dsDatos);
            PaginaBase.CargarDropDown(ddlCodigoIndustria, dsDatos.Tables[0], "ci_descripcion", "ci_codigo", false, " - Escoja Tipo de Industria -");
        }


        protected void CargarTipoEmpresa()
        {
            DataSet dsDatos = new DataSet();

            objBS.ObtenerTipoEmpresa(ref dsDatos);
            PaginaBase.CargarDropDown(ddlTipoEmpresa, dsDatos.Tables[0], "descripcion", "codigo", false, " - Escoja Tipo de Empresa -");
        }



        //OTROS DATOS
        protected void CargarNiveldeEducacion()
        {
            DataSet dsDatos = new DataSet();
            objBS.ObtenerNivelEducacion(ref dsDatos);
            PaginaBase.CargarDropDown(ddlNivelEducacion, dsDatos.Tables[0], "esc_descripcion", "esc_codigo", false, Constantes.LISTASSELECCIONEITEM);
        }

        //protected void CargarTipoActividadEconomica()
        //{
        //    DataSet dsDatos = new DataSet();
        //    objBS.ObtenerTipoActividadEconomica(ref dsDatos);
        //    PaginaBase.CargarDropDown(ddlTipoActividad, dsDatos.Tables[0], "ae_descripcion", "ae_codigo", false, Constantes.LISTASSELECCIONEITEM);
        //}

        protected void CargarProfesion()
        {
            DataSet dsDatos = new DataSet();
            objBS.ObtenerProfesion(ref dsDatos);
            PaginaBase.CargarDropDown(ddlProfesion, dsDatos.Tables[0], "descripcion", "codigo", false, Constantes.LISTASSELECCIONEITEM);

        }

        protected void CargarFuenteIngreso()
        {
            DataSet dsDatos = new DataSet();
            objBS.ObtenerFuenteIngreso(ref dsDatos);
            PaginaBase.CargarDropDown(ddlFuenteIngreso, dsDatos.Tables[0], "fi_descripcion", "fi_codigo", false, Constantes.LISTASSELECCIONEITEM);

        }
        //FIN OTROS DATOS
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CargarRangoSalarial();
                CargarTipoNegocio();
                CargarTipoIndustria();
                CargarTipoEmpresa();


                CargarNiveldeEducacion();
                //CargarTipoActividadEconomica();
                CargarProfesion();
                CargarFuenteIngreso();

            }
        }

        protected void MostrarTelefonos(Boolean valor, int largo)
        {
            txtTelefonoOficina1.Visible = valor;
            txtTelefonoOficina2.Visible = valor;

            txtFax1.Visible = valor;
            txtFax2.Visible = valor;

            txtTelefonoOficina3.Width = largo;
            txtFax3.Width = largo;

            CC.Visible = valor;
            CP.Visible = valor;
            CT.Visible = valor;

            RegularExpressionValidator1.Visible = valor;
            RegularExpressionValidator2.Visible = valor;

            RegularExpressionValidator4.Visible = valor;
            RegularExpressionValidator5.Visible = valor;
        }

        protected void Page_PreRender(object sender, EventArgs e)
        {
            try
            {
                if (Session["PAIS"].ToString() == Constantes.PANAMA)
                {
                    MostrarTelefonos(false, 100);
                }
                else
                {
                    MostrarTelefonos(true, 95);
                }
            }
            catch
            {
                MostrarTelefonos(true, 95);
            }

            if (ddlTipoEmpresa.SelectedValue == "EMPG")
            {
                Contraloria.Visible = true;
            }
            else
            {
                Contraloria.Visible = false;
            }
        }

        public DateTime ConvertirFecha(String fecha)
        {
            DateTime fechaRetornada;

            try
            {
                if (fecha == string.Empty)
                {
                    System.Globalization.CultureInfo lCulture = new System.Globalization.CultureInfo("es-PA");
                    lCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";

                    fechaRetornada = Convert.ToDateTime(DateTime.Now, lCulture);
                    fechaRetornada = fechaRetornada.AddYears(1000);
                }
                else
                {
                    System.Globalization.CultureInfo lCulture = new System.Globalization.CultureInfo("es-PA");
                    lCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";

                    fechaRetornada = Convert.ToDateTime(fecha, lCulture);
                    //DateTime fechaConvertir = Convert.ToDateTime(fecha, lCulture);
                    //string d, m, y, nf;
                    //d = Convert.ToString(fechaConvertir.Day);
                    //m = Convert.ToString(fechaConvertir.Month);
                    //y = Convert.ToString(fechaConvertir.Year);
                    //nf = d + "/" + m + "/" + y;
                    //fechaRetornada = Convert.ToDateTime(nf);
                }
            }
            catch
            {
                //fechaRetornada = DateTime.Now;
                //fechaRetornada = fechaRetornada.AddYears(1000);
                System.Globalization.CultureInfo lCulture = new System.Globalization.CultureInfo("es-PA");
                lCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";

                fechaRetornada = Convert.ToDateTime(Constantes.FECHAMINIMA, lCulture); ;
            }

            return fechaRetornada;
        }

        protected void txtFechadeIngreso_TextChanged(object sender, EventArgs e)
        {
            if (txtFechadeIngreso.Text != string.Empty)
            {
                try
                {
                    DateTime fecha = new DateTime();
                    fecha = ConvertirFecha(txtFechadeIngreso.Text);
                    if (fecha.ToString() != ConvertirFecha(Constantes.FECHAMINIMA).ToString())
                    {
                        TimeSpan tiempoTrabajando = new TimeSpan();
                        tiempoTrabajando = (DateTime.Today - fecha);
                        txtTiempoEmpleo.Text = (tiempoTrabajando.Days).ToString();
                    }
                }
                catch { }
            }
        }

        protected void txtSalarioActual_TextChanged(object sender, EventArgs e)
        {
            double cant = new double();
            cant = Convert.ToDouble(txtSalarioActual.Text);
            if (ddlRangoSalarial.SelectedValue == "%")
            {
                ShowStatus("Por favor seleccione el rango salarial");
                txtSalarioActual.Text = string.Empty;
            }
            else
            {
                if (ddlRangoSalarial.SelectedValue == "01")
                {
                    if (cant >= 501)
                    {
                        ShowStatus("El salario actual y el rango salarial no coinciden, por favor verifique.");
                        txtSalarioActual.Text = string.Empty;
                    }
                }
                else if (ddlRangoSalarial.SelectedValue == "02")
                {
                    if (!((cant >= 501) && (cant <= 1000)))
                    {
                        ShowStatus("El salario actual y el rango salarial no coinciden, por favor verifique.");
                        txtSalarioActual.Text = string.Empty;
                    }
                }
                else if (ddlRangoSalarial.SelectedValue == "03")
                {
                    if (!((cant >= 1001) && (cant <= 3000)))
                    {
                        ShowStatus("El salario actual y el rango salarial no coinciden, por favor verifique.");
                        txtSalarioActual.Text = string.Empty;
                    }
                }
                else if (ddlRangoSalarial.SelectedValue == "04")
                {
                    if (!((cant >= 3001) && (cant <= 5000)))
                    {
                        ShowStatus("El salario actual y el rango salarial no coinciden, por favor verifique.");
                        txtSalarioActual.Text = string.Empty;
                    }
                }
                else if (ddlRangoSalarial.SelectedValue == "05")
                {
                    if (!((cant >= 5001) && (cant <= 10000)))
                    {
                        ShowStatus("El salario actual y el rango salarial no coinciden, por favor verifique.");
                        txtSalarioActual.Text = string.Empty;
                    }
                }
                else if (ddlRangoSalarial.SelectedValue == "06")
                {
                    if ((cant <= 10000))
                    {
                        ShowStatus("El salario actual y el rango salarial no coinciden, por favor verifique.");
                        txtSalarioActual.Text = string.Empty;
                    }
                }

            }

        }


        public void ShowStatus(string Texto)
        {
            string script = null;
            Type cstype = this.GetType();
            Texto = Texto.Replace("\\r\\n", " ");
            Texto = Texto.Replace("\\\\", " ");
            Texto = Texto.Replace("'", " ");
            Texto = Texto.Replace("\"", "*");
            script = "<SCRIPT language='javascript'> window.alert('" + Texto.Trim() + "'); </SCRIPT>";
            ScriptManager.RegisterStartupScript(this, cstype, "LogicStudioAlerta", script, false);
        }

        protected void ddlRangoSalarial_SelectedIndexChanged(object sender, EventArgs e)
        {

            if (txtSalarioActual.Text != string.Empty)
            {
                double cant = new double();
                cant = Convert.ToDouble(txtSalarioActual.Text);
                if (ddlRangoSalarial.SelectedValue == "%")
                {
                    ShowStatus("Por favor seleccione el rango salarial");
                    txtSalarioActual.Text = string.Empty;
                }
                else
                {
                    if (ddlRangoSalarial.SelectedValue == "01")
                    {
                        if (cant >= 501)
                        {
                            ShowStatus("El salario actual y el rango salarial no coinciden, por favor verifique.");
                            txtSalarioActual.Text = string.Empty;
                        }
                    }
                    else if (ddlRangoSalarial.SelectedValue == "02")
                    {
                        if (!((cant >= 501) && (cant <= 1000)))
                        {
                            ShowStatus("El salario actual y el rango salarial no coinciden, por favor verifique.");
                            txtSalarioActual.Text = string.Empty;
                        }
                    }
                    else if (ddlRangoSalarial.SelectedValue == "03")
                    {
                        if (!((cant >= 1001) && (cant <= 3000)))
                        {
                            ShowStatus("El salario actual y el rango salarial no coinciden, por favor verifique.");
                            txtSalarioActual.Text = string.Empty;
                        }
                    }
                    else if (ddlRangoSalarial.SelectedValue == "04")
                    {
                        if (!((cant >= 3001) && (cant <= 5000)))
                        {
                            ShowStatus("El salario actual y el rango salarial no coinciden, por favor verifique.");
                            txtSalarioActual.Text = string.Empty;
                        }
                    }
                    else if (ddlRangoSalarial.SelectedValue == "05")
                    {
                        if (!((cant >= 5001) && (cant <= 10000)))
                        {
                            ShowStatus("El salario actual y el rango salarial no coinciden, por favor verifique.");
                            txtSalarioActual.Text = string.Empty;
                        }
                    }
                    else if (ddlRangoSalarial.SelectedValue == "06")
                    {
                        if ((cant <= 10000))
                        {
                            ShowStatus("El salario actual y el rango salarial no coinciden, por favor verifique.");
                            txtSalarioActual.Text = string.Empty;
                        }
                    }

                }

 
            }

        }


    }
}